// every 检测数组元素是否全部符合指定条件（由函数提供）
// 参数：函数（item，index，arr）
// 返回值：返回的是true或者false
// 不修改原数组
// var arr = [12, 5, 36, 33, 18]
// var res = arr.every(function (item, index, arr) {
//     // item--->数组每一项  index--->数组索引  arr--->数组本身
//     console.log('every');
//     return item >= 36
// })
// console.log(res, arr);

// some 检测数组元素是否符合指定条件（函数中）
// 参数：函数(item,index,arr)
// 返回值：返回true和false
// 不修改原数组
// var arr = [12, 5, 36, 33, 18]
// var res = arr.some(function (item, index, arr) {
//     console.log('some');
//     return item >= 38
// })
// console.log(res, arr);

// filter 过滤出符合条件的数组元素组成新数组
// 参数：函数(item,index,arr)
// 返回值：返回符合条件数组元素组成新数组
// 不修改原数组
// var arr = [12, 4, 36, 33, 18]
// var res = arr.filter(function () {
//     return item >= 18
// })
// console.log(res, arr);

// map 映射 对每一个数组元素进行处理
// 参数：函数（item，index，arr）
// 返回值：返回一个新数组，数组中的元素为原始数组元素调⽤函数处理后的值
// 不修改原数组
// var arr = [1, 2, 3, 4, 5]
// var res = arr.map(function (item, index, arr) {
//     return item * 5
// })
// console.log(res, arr);

// forEach 遍历每一个数组元素
// 参数：函数（item，index，arr）
// 返回值：无
// 不修改原数组

Array.prototype.myForEach = function (callback) {
    for (let i = 0; i < this.length; i++) {
        callback(this[i], i, this)
    }
}

var arr = [1, 2, 3, 4, 5]
arr.myForEach(function (item, index, arr) {
    console.log(item, index, arr, '1111');
});


